04. Quadrotor Kinematic and Dynamic Model 2

In general, a quadrotor requires 12 generalized coordinates to completely describe its position and orientation in 3D space (3 for position, 3 for orientation, and their time derivatives). More specifically, let’s define these generalized coordinates as,

  • x, y, and z = the position of the quadrotor’s center of mass (CoM)
  • roll (\phi), pitch (\theta), and yaw (\psi) Euler angles = the orientation of the body frame {B} relative to the fixed world frame {W}
  • \dot{x}, \dot{y}, and \dot{z} = the linear velocities of the quadrotor’s CoM
  • \dot{\phi}, \dot{\theta}, and \dot{\psi} = the angular velocities of {B} relative to {W}

Thus, the quadrotor's full state vector is,

\bold{\xi} = [x, y, z, \phi, \theta, \psi, \dot{x}, \dot{y}, \dot{z}, \dot{\phi}, \dot{\theta}, \dot{\psi}]

In Classical Mechanics, knowing the state and the equations describing how the state changes as a function of time (i.e., the dynamical equations of motion), it is possible to calculate the state of the system at some future time. This is not a course in dynamics and we won't worry about the details of deriving the equations of motion - but if you are curious, you can find many papers and masters theses online (for example) that demonstrate the steps involved.

Of course, the purpose of controls is to determine what the magnitude of actuator inputs should be in order to achieve the desired response. Quadrotors are interesting in that they require a non-zero motor input to simply maintain a constant position when in the air. A clever trick when designing controllers for quadrotors then is to first define an "equilibrium" (hovering) state, \bold{\xi_{eq}}, and then calculate the changes in the motor speeds relative to the equilibrium that drive the system in the desired way.

Test Your Intuition!

In order for a quadrotor to hover in place, i.e., maintain a constant x, y, z position, which states must equal zero? (HINT: there should be 8 check marks). You can assume that all external disturbances are equal to zero.

SOLUTION:
  • phi (roll angle)
  • theta (pitch angle)
  • dx/dt
  • dy/dt
  • dz/dt
  • d(phi)/dt
  • d(theta)/dt
  • d(psi)/dt

Calculating the nominal motor thrust to hover in an equilibrium configuration is very straightforward - it is simply a statics problem. If the sum of the forces acting in the \hat{\bold{W_z}} direction is equal to zero, then there is no acceleration in the z-direction of the world frame. Using bold symbols to denote vector quantities, the sum of all external forces (weight + thrust from 4 motors) is,

In the equilibrium hover state, you can assume that:

  1. all the motors produce equal thrust, i.e, F1=F2=F3=F4, and
  2. the Z-axes of the {B} and {W} frames are parallel. Thus, \bold{b_z} \cdot \bold{W_z} = 1

Since the thrust produced by each motor is,

the nominal motor speed at an equilibrium hover is,

Although motor speed is what is directly manipulated by the onboard computer, it is actually easier to think about controlling the quadrotor in terms of net thrust and moments about the roll, pitch, and yaw axes. This abstraction makes it easier to segment the overall control problem into individual components. For example, one controller may be responsible for maintaining a quadrotor's position and heading (yaw angle) while a separate controller affects the quadrotor's attitude. Often this segmentation strategy involves "wrapping" or "nesting" one feedback loop inside of another. The overall controller then is referred to as a cascaded controller.